With the advent of consumer mobile devices equipped with high-resolution touchscreens, powerful processors, and graphics processing units (GPUs), electronic gaming has become a popular activity on mobile devices such as smartphones, tablets, and the like. Many users employ mobile devices to play electronic games, with at least some of such users commonly spending substantial amounts of time playing the electronic games. As device screens become larger and screen resolutions increase for mobile devices, finer graphical detail and advanced graphical effects are becoming more common for mobile applications, such as the electronic games, etc.
To provide richer visual experiences, processing capabilities of GPUs of mobile devices have improved; however, the GPUs of mobile devices typically cannot duplicate sophisticated graphical detail provided by gaming consoles and high-end desktop GPUs. A reason for such difference in performance is power consumption. According to an example, a high-end desktop GPU may consume 500 W of power, whereas a high-end mobile GPU may consume less than 10 W of power. Moreover, mobile GPUs likely will continue to lag behind desktop GPUs since battery capacity of the mobile devices is limited, and high power consumption may lead to sophisticated and bulky thermal dissipation mechanisms, which may be incompatible with mobile form factors.
A conventional approach attempts to close the performance and energy gaps between mobile devices and server-side infrastructure through remote execution and code offload. Such approach typically utilizes general-purpose workloads running on central processing units (CPUs) of the mobile devices.
Another conventional approach to enable high-end gaming on resource-constrained mobile devices is based on a thin-client architecture, in which the execution of game logic and the rendering process is performed remotely on a server with a powerful CPU and GPU. For instance, the mobile devices can take advantage of server-side infrastructure equipped with high-end CPUs and GPUs by transmitting user input to remote servers, and receiving the resulting audio-visual output encoded as compressed video. However, transmitting game content that meets expectations of gamers with regards to screen resolution, video quality, and frame rate can result in high bandwidth utilization. For this reason, such a conventional thin-client approach may not work in bandwidth scarce environments, such as cafés or airports, or under limited cellular data plans. Moreover, the thin-client approach typically requires the mobile device to be connected to the rendering server when playing a game; thus, offline gaming would be unavailable when employing such an approach.
Another common approach is to adapt high-end games to constraints imposed by mobile device hardware specifications. However, adapting games to such constraints oftentimes results in a lack of graphical details, such as complex lighting, shadows, particles, fog, detailed textures, complex models, non-critical graphical objects such as blades of grass in the field, and the like. This approach is oftentimes employed in modern games to allow such games to run on underpowered hardware, such as low-end desktops and laptops. Thus, through custom graphics settings, different levels of visual detail and effects can be enabled or disabled (e.g., using a configuration screen, etc.) in order to obtain a sufficient level of detail while allowing the game to be rendered at a full frame rate.